// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.patrol.manage;

import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@Setter
@Getter
public class PatrolManageSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "PatrolManage".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    map.put("supplierId", "s");
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();

    return map;
  }

  /**
   * 指定使用特定的视图过滤条件
   * <p>
   * 有效值包括：PatrolManage/AllData, PatrolManage/Tobesubmitted, PatrolManage/Completed
   * </p>
   */
  private String byViewName;

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 供应商编号
   */
  private Long supplierId;

  /**
   * 供应商编号 比较(eq)
   */
  private Long supplierIdEq;
  /**
   * 供应商编号 比较(neq)
   */
  private Long supplierIdNeq;
  /**
   * 供应商编号 比较(gt)
   */
  private Long supplierIdGt;
  /**
   * 供应商编号 比较(gte)
   */
  private Long supplierIdGte;
  /**
   * 供应商编号 比较(lt)
   */
  private Long supplierIdLt;
  /**
   * 供应商编号 比较(lte)
   */
  private Long supplierIdLte;
  /**
   * 供应商编号 比较(contains)
   */
  private Long supplierIdContains;
  /**
   * 供应商编号 比较(notcontains)
   */
  private Long supplierIdNotcontains;
  /**
   * 供应商编号 比较(startswith)
   */
  private Long supplierIdStartswith;
  /**
   * 供应商编号 比较(endswith)
   */
  private Long supplierIdEndswith;
  /**
   * 供应商编号 比较(isnull)
   */
  private Boolean supplierIdIsnull;
  /**
   * 供应商编号 比较(isnotnull)
   */
  private Boolean supplierIdIsnotnull;
  /**
   * 供应商编号的供应商现有字段 比较(eq)
   */
  private String supplierIdSupplierExistingFieldsEq;
  /**
   * 供应商编号的供应商现有字段 比较(neq)
   */
  private String supplierIdSupplierExistingFieldsNeq;
  /**
   * 供应商编号的供应商现有字段 比较(gt)
   */
  private String supplierIdSupplierExistingFieldsGt;
  /**
   * 供应商编号的供应商现有字段 比较(gte)
   */
  private String supplierIdSupplierExistingFieldsGte;
  /**
   * 供应商编号的供应商现有字段 比较(lt)
   */
  private String supplierIdSupplierExistingFieldsLt;
  /**
   * 供应商编号的供应商现有字段 比较(lte)
   */
  private String supplierIdSupplierExistingFieldsLte;
  /**
   * 供应商编号的供应商现有字段 比较(contains)
   */
  private String supplierIdSupplierExistingFieldsContains;
  /**
   * 供应商编号的供应商现有字段 比较(notcontains)
   */
  private String supplierIdSupplierExistingFieldsNotcontains;
  /**
   * 供应商编号的供应商现有字段 比较(startswith)
   */
  private String supplierIdSupplierExistingFieldsStartswith;
  /**
   * 供应商编号的供应商现有字段 比较(endswith)
   */
  private String supplierIdSupplierExistingFieldsEndswith;
  /**
   * 供应商编号的供应商现有字段 比较(isnull)
   */
  private Boolean supplierIdSupplierExistingFieldsIsnull;
  /**
   * 供应商编号的供应商现有字段 比较(isnotnull)
   */
  private Boolean supplierIdSupplierExistingFieldsIsnotnull;

  /**
   * 供应商编号(范围搜索)
   */
  private List<Long> supplierIdInList;

  /**
   * 供应商等级(模糊搜索)
   */
  private String grade;

  /**
   * 供应商等级 比较(eq)
   */
  private String gradeEq;
  /**
   * 供应商等级 比较(neq)
   */
  private String gradeNeq;
  /**
   * 供应商等级 比较(gt)
   */
  private String gradeGt;
  /**
   * 供应商等级 比较(gte)
   */
  private String gradeGte;
  /**
   * 供应商等级 比较(lt)
   */
  private String gradeLt;
  /**
   * 供应商等级 比较(lte)
   */
  private String gradeLte;
  /**
   * 供应商等级 比较(contains)
   */
  private String gradeContains;
  /**
   * 供应商等级 比较(notcontains)
   */
  private String gradeNotcontains;
  /**
   * 供应商等级 比较(startswith)
   */
  private String gradeStartswith;
  /**
   * 供应商等级 比较(endswith)
   */
  private String gradeEndswith;
  /**
   * 供应商等级 比较(isnull)
   */
  private Boolean gradeIsnull;
  /**
   * 供应商等级 比较(isnotnull)
   */
  private Boolean gradeIsnotnull;

  /**
   * 供应商等级(精确搜索)
   */
  private List<String> gradeInList;

  /**
   * 状态
   */
  private String state;

  /**
   * 状态 比较(eq)
   */
  private String stateEq;
  /**
   * 状态 比较(neq)
   */
  private String stateNeq;
  /**
   * 状态 比较(gt)
   */
  private String stateGt;
  /**
   * 状态 比较(gte)
   */
  private String stateGte;
  /**
   * 状态 比较(lt)
   */
  private String stateLt;
  /**
   * 状态 比较(lte)
   */
  private String stateLte;
  /**
   * 状态 比较(contains)
   */
  private String stateContains;
  /**
   * 状态 比较(notcontains)
   */
  private String stateNotcontains;
  /**
   * 状态 比较(startswith)
   */
  private String stateStartswith;
  /**
   * 状态 比较(endswith)
   */
  private String stateEndswith;
  /**
   * 状态 比较(isnull)
   */
  private Boolean stateIsnull;
  /**
   * 状态 比较(isnotnull)
   */
  private Boolean stateIsnotnull;

  /**
   * 状态(精确搜索)
   */
  private List<String> stateInList;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 最小创建人
   */
  private Long createUserMin;

  /**
   * 最大创建人
   */
  private Long createUserMax;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * 巡场人员(模糊搜索)
   */
  private String patrolPersonnel;

  /**
   * 巡场人员 比较(eq)
   */
  private String patrolPersonnelEq;
  /**
   * 巡场人员 比较(neq)
   */
  private String patrolPersonnelNeq;
  /**
   * 巡场人员 比较(gt)
   */
  private String patrolPersonnelGt;
  /**
   * 巡场人员 比较(gte)
   */
  private String patrolPersonnelGte;
  /**
   * 巡场人员 比较(lt)
   */
  private String patrolPersonnelLt;
  /**
   * 巡场人员 比较(lte)
   */
  private String patrolPersonnelLte;
  /**
   * 巡场人员 比较(contains)
   */
  private String patrolPersonnelContains;
  /**
   * 巡场人员 比较(notcontains)
   */
  private String patrolPersonnelNotcontains;
  /**
   * 巡场人员 比较(startswith)
   */
  private String patrolPersonnelStartswith;
  /**
   * 巡场人员 比较(endswith)
   */
  private String patrolPersonnelEndswith;
  /**
   * 巡场人员 比较(isnull)
   */
  private Boolean patrolPersonnelIsnull;
  /**
   * 巡场人员 比较(isnotnull)
   */
  private Boolean patrolPersonnelIsnotnull;

  /**
   * 巡场人员(精确搜索)
   */
  private List<String> patrolPersonnelInList;

  /**
   * 最早巡场时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date patrolTimeStart;

  /**
   * 最晚巡场时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date patrolTimeEnd;

  /**
   * 巡场时间 比较(eq)
   */
  private Date patrolTimeEq;
  /**
   * 巡场时间 比较(neq)
   */
  private Date patrolTimeNeq;
  /**
   * 巡场时间 比较(gt)
   */
  private Date patrolTimeGt;
  /**
   * 巡场时间 比较(gte)
   */
  private Date patrolTimeGte;
  /**
   * 巡场时间 比较(lt)
   */
  private Date patrolTimeLt;
  /**
   * 巡场时间 比较(lte)
   */
  private Date patrolTimeLte;
  /**
   * 巡场时间 比较(contains)
   */
  private Date patrolTimeContains;
  /**
   * 巡场时间 比较(notcontains)
   */
  private Date patrolTimeNotcontains;
  /**
   * 巡场时间 比较(startswith)
   */
  private Date patrolTimeStartswith;
  /**
   * 巡场时间 比较(endswith)
   */
  private Date patrolTimeEndswith;
  /**
   * 巡场时间 比较(isnull)
   */
  private Boolean patrolTimeIsnull;
  /**
   * 巡场时间 比较(isnotnull)
   */
  private Boolean patrolTimeIsnotnull;

  /**
   * 是否有 巡场拍照
   */
  private Boolean patrolPhotography;

  /**
   * 备注(模糊搜索)
   */
  private String remarks;

  /**
   * 备注 比较(eq)
   */
  private String remarksEq;
  /**
   * 备注 比较(neq)
   */
  private String remarksNeq;
  /**
   * 备注 比较(gt)
   */
  private String remarksGt;
  /**
   * 备注 比较(gte)
   */
  private String remarksGte;
  /**
   * 备注 比较(lt)
   */
  private String remarksLt;
  /**
   * 备注 比较(lte)
   */
  private String remarksLte;
  /**
   * 备注 比较(contains)
   */
  private String remarksContains;
  /**
   * 备注 比较(notcontains)
   */
  private String remarksNotcontains;
  /**
   * 备注 比较(startswith)
   */
  private String remarksStartswith;
  /**
   * 备注 比较(endswith)
   */
  private String remarksEndswith;
  /**
   * 备注 比较(isnull)
   */
  private Boolean remarksIsnull;
  /**
   * 备注 比较(isnotnull)
   */
  private Boolean remarksIsnotnull;

  /**
   * 备注(精确搜索)
   */
  private List<String> remarksInList;

  /**
   * 良品率
   */
  private java.math.BigDecimal goodQuantity;

  /**
   * 最小良品率
   */
  private java.math.BigDecimal goodQuantityMin;

  /**
   * 最大良品率
   */
  private java.math.BigDecimal goodQuantityMax;

  /**
   * 良品率 比较(eq)
   */
  private java.math.BigDecimal goodQuantityEq;
  /**
   * 良品率 比较(neq)
   */
  private java.math.BigDecimal goodQuantityNeq;
  /**
   * 良品率 比较(gt)
   */
  private java.math.BigDecimal goodQuantityGt;
  /**
   * 良品率 比较(gte)
   */
  private java.math.BigDecimal goodQuantityGte;
  /**
   * 良品率 比较(lt)
   */
  private java.math.BigDecimal goodQuantityLt;
  /**
   * 良品率 比较(lte)
   */
  private java.math.BigDecimal goodQuantityLte;
  /**
   * 良品率 比较(contains)
   */
  private java.math.BigDecimal goodQuantityContains;
  /**
   * 良品率 比较(notcontains)
   */
  private java.math.BigDecimal goodQuantityNotcontains;
  /**
   * 良品率 比较(startswith)
   */
  private java.math.BigDecimal goodQuantityStartswith;
  /**
   * 良品率 比较(endswith)
   */
  private java.math.BigDecimal goodQuantityEndswith;
  /**
   * 良品率 比较(isnull)
   */
  private Boolean goodQuantityIsnull;
  /**
   * 良品率 比较(isnotnull)
   */
  private Boolean goodQuantityIsnotnull;

  /**
   * 进度
   */
  private java.math.BigDecimal schedule;

  /**
   * 最小进度
   */
  private java.math.BigDecimal scheduleMin;

  /**
   * 最大进度
   */
  private java.math.BigDecimal scheduleMax;

  /**
   * 进度 比较(eq)
   */
  private java.math.BigDecimal scheduleEq;
  /**
   * 进度 比较(neq)
   */
  private java.math.BigDecimal scheduleNeq;
  /**
   * 进度 比较(gt)
   */
  private java.math.BigDecimal scheduleGt;
  /**
   * 进度 比较(gte)
   */
  private java.math.BigDecimal scheduleGte;
  /**
   * 进度 比较(lt)
   */
  private java.math.BigDecimal scheduleLt;
  /**
   * 进度 比较(lte)
   */
  private java.math.BigDecimal scheduleLte;
  /**
   * 进度 比较(contains)
   */
  private java.math.BigDecimal scheduleContains;
  /**
   * 进度 比较(notcontains)
   */
  private java.math.BigDecimal scheduleNotcontains;
  /**
   * 进度 比较(startswith)
   */
  private java.math.BigDecimal scheduleStartswith;
  /**
   * 进度 比较(endswith)
   */
  private java.math.BigDecimal scheduleEndswith;
  /**
   * 进度 比较(isnull)
   */
  private Boolean scheduleIsnull;
  /**
   * 进度 比较(isnotnull)
   */
  private Boolean scheduleIsnotnull;

  /**
   * 订单逾期次数
   */
  private Integer orderOverdueNumber;

  /**
   * 最小订单逾期次数
   */
  private Integer orderOverdueNumberMin;

  /**
   * 最大订单逾期次数
   */
  private Integer orderOverdueNumberMax;

  /**
   * 订单逾期次数 比较(eq)
   */
  private Integer orderOverdueNumberEq;
  /**
   * 订单逾期次数 比较(neq)
   */
  private Integer orderOverdueNumberNeq;
  /**
   * 订单逾期次数 比较(gt)
   */
  private Integer orderOverdueNumberGt;
  /**
   * 订单逾期次数 比较(gte)
   */
  private Integer orderOverdueNumberGte;
  /**
   * 订单逾期次数 比较(lt)
   */
  private Integer orderOverdueNumberLt;
  /**
   * 订单逾期次数 比较(lte)
   */
  private Integer orderOverdueNumberLte;
  /**
   * 订单逾期次数 比较(contains)
   */
  private Integer orderOverdueNumberContains;
  /**
   * 订单逾期次数 比较(notcontains)
   */
  private Integer orderOverdueNumberNotcontains;
  /**
   * 订单逾期次数 比较(startswith)
   */
  private Integer orderOverdueNumberStartswith;
  /**
   * 订单逾期次数 比较(endswith)
   */
  private Integer orderOverdueNumberEndswith;
  /**
   * 订单逾期次数 比较(isnull)
   */
  private Boolean orderOverdueNumberIsnull;
  /**
   * 订单逾期次数 比较(isnotnull)
   */
  private Boolean orderOverdueNumberIsnotnull;

  /**
   * 订单逾期天数
   */
  private Integer orderOverdueDays;

  /**
   * 最小订单逾期天数
   */
  private Integer orderOverdueDaysMin;

  /**
   * 最大订单逾期天数
   */
  private Integer orderOverdueDaysMax;

  /**
   * 订单逾期天数 比较(eq)
   */
  private Integer orderOverdueDaysEq;
  /**
   * 订单逾期天数 比较(neq)
   */
  private Integer orderOverdueDaysNeq;
  /**
   * 订单逾期天数 比较(gt)
   */
  private Integer orderOverdueDaysGt;
  /**
   * 订单逾期天数 比较(gte)
   */
  private Integer orderOverdueDaysGte;
  /**
   * 订单逾期天数 比较(lt)
   */
  private Integer orderOverdueDaysLt;
  /**
   * 订单逾期天数 比较(lte)
   */
  private Integer orderOverdueDaysLte;
  /**
   * 订单逾期天数 比较(contains)
   */
  private Integer orderOverdueDaysContains;
  /**
   * 订单逾期天数 比较(notcontains)
   */
  private Integer orderOverdueDaysNotcontains;
  /**
   * 订单逾期天数 比较(startswith)
   */
  private Integer orderOverdueDaysStartswith;
  /**
   * 订单逾期天数 比较(endswith)
   */
  private Integer orderOverdueDaysEndswith;
  /**
   * 订单逾期天数 比较(isnull)
   */
  private Boolean orderOverdueDaysIsnull;
  /**
   * 订单逾期天数 比较(isnotnull)
   */
  private Boolean orderOverdueDaysIsnotnull;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
